<template>
  <div>
    <input id="tipinput" style="margin: 10px 0" placeholder="搜索地址" />
    <div id="container"></div>
  </div>
</template>

<script>
import AMapLoader from '@amap/amap-jsapi-loader'
window._AMapSecurityConfig = {
  securityJsCode: '045e6da126732c7d20d9c7c155d8f730',
}
export default {
  props: {
    lat: null,
    lng: null,
  },
  data() {
    return {}
  },
  methods: {
    initMap(lat, lng) {
      AMapLoader.load({
        key: 'c94952ff02f1eea194b04d313d2d03ab', // 申请好的Web端开发者Key，首次调用 load 时必填
        resizeEnable: true,
        version: '2.0', // 指定要加载的 JSAPI 的版本，缺省时默认为 1.4.15
        plugins: [
          'AMap.AutoComplete', // 输入提示插件
          'AMap.PlaceSearch', // POI搜索插件
          'AMap.CitySearch',
          'AMap.Scale', // 右下角缩略图插件 比例尺
          'AMap.OverView', // 地图鹰眼插件
          'AMap.ToolBar', // 地图工具条
          'AMap.Geolocation', // 定位控件，用来获取和展示用户主机所在的经纬度位置
          'AMap.Geocoder',
          'AMap.MapType',
        ],
        AMapUI: {
          // 是否加载 AMapUI，缺省不加载
          version: '1.1', // AMapUI 版本
          plugins: ['overlay/SimpleMarker'], // 需要加载的 AMapUI ui插件
        },
      })
        .then((AMap) => {
          var that = this
          that.map = new AMap.Map('container', {
            //设置地图容器id
            viewMode: '3D', // 默认使用 2D 模式
            zoom: 16, //初始化地图层级
            center: [lng, lat],
          })
          const citySearch = new AMap.CitySearch({
            map: that.map, // 展现结果的地图实例
          })
          //输入提示
          var autoOptions = {
            input: 'tipinput',
          }
          citySearch.getLocalCity(function (status, result) {
            if (status === 'complete' && result.info === 'OK') {
              // 查询成功，result即为当前所在城市信息
            }
          })
          // that.map.on('click', showInfoClick)
          // function showInfoClick(e) {
          //   console.log(e.lnglat.getLng() + ',' + e.lnglat.getLat())
          //   var text = '您在 [ ' + e.lnglat.getLng() + ',' + e.lnglat.getLat() + ' ] 的位置单击了地图！'
          //   // document.querySelector('#text').innerText = text
          // }
          const placeSearch = new AMap.PlaceSearch({
            map: that.map, // 展现结果的地图实例
          })
          var auto = new AMap.AutoComplete(autoOptions)
          auto.on('select', select) //注册监听，当选中某条记录时会触发
          function select(e) {
            placeSearch.setCity(e.poi.adcode)
            placeSearch.search(e.poi.name) //关键字查询查询
            that.$bus.$emit('maps', e)
          }
        })
        .catch((e) => {
          console.log(e)
        })
    },
  },
  watch: {
    lat: {
      handler(newVal, oldVal) {
        this.initMap(this.lat, this.lng)
      },
      immediate: true
    }, 
  },
}
</script>

<style scoped>
#container {
  padding: 0px;
  margin: 0px;
  width: 100%;
  height: 800px;
}
</style>
